<?php
class CentroApoyoEscolaresController extends AppController {

	var $name = 'CentroApoyoEscolares';
	var $uses = array('CentroApoyoEscolare','EquiposOperativo','User', 'Estudiante', 'Asistencia','GuiasEstudiante', 'Planeacione', 'UsersEquiposOperativo');
	var $helpers = array('Access', 'Xls');

	function index() {
		$this->CentroApoyoEscolare->recursive = 0;
		$this->set('centroApoyoEscolares', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Centro apoyo escolar invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('centroApoyoEscolare', $this->CentroApoyoEscolare->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->CentroApoyoEscolare->create();
			if ($this->CentroApoyoEscolare->save($this->data)) {
				$this->Session->setFlash(__('El centro apoyo ha sido guardado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The centro apoyo escolare could not be saved. Please, try again.', true));
			}
		}
		$equiposOperativos = $this->CentroApoyoEscolare->EquiposOperativo->Zona->find('all',array('fields'=>array('Zona.id','Zona.municipio_id')));
		
	    $equipos_reales = array();
		
		foreach ($equiposOperativos as &$equipo){		
			$adquirir_nombre_municipio = $this->CentroApoyoEscolare->EquiposOperativo->Zona->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$equipo['Zona']['municipio_id'])));
			$equipo['nombre_municipio']=$adquirir_nombre_municipio['Municipio']['nombre'];
			$equipos_reales[$equipo['Zona']['id']]=$equipo['nombre_municipio'];			
		}
		$equiposOperativos = $equipos_reales;
		
		
		$users = $this->CentroApoyoEscolare->User->find('list', array('fields'=>array('User.id','User.nombre_completo')));
		$iems = $this->CentroApoyoEscolare->Iem->find('list', array('fields'=>array('Iem.id','Iem.nombre')));
		$this->set(compact('equiposOperativos', 'users', 'iems'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Centro apoyo escolar invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->CentroApoyoEscolare->save($this->data)) {
				$this->Session->setFlash(__('El centro apoyo escolar ha sido actualizado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The centro apoyo escolare could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->CentroApoyoEscolare->read(null, $id);
		}
		$equiposOperativos = $this->CentroApoyoEscolare->EquiposOperativo->find('list');
		$users = $this->CentroApoyoEscolare->User->find('list', array('fields'=>array('User.id','User.nombre_completo')));
		$iems = $this->CentroApoyoEscolare->Iem->find('list', array('fields'=>array('Iem.id','Iem.nombre')));
		$this->set(compact('equiposOperativos', 'users', 'iems'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for centro apoyo escolar', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->CentroApoyoEscolare->delete($id)) {
			$this->Session->setFlash(__('Centro apoyo escolar deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Centro apoyo escolar was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function get_caes_json($cae = null){			
		if( $cae != null ){
			$caes = $this->CentroApoyoEscolare->find("all", array("conditions"=>array("CentroApoyoEscolare.id"=>$cae)));			
			
			$this->view = 'Json';
			$this->set(compact('caes'));
			$this->set('json', 'caes');
		}
	}	
	
	function seguimiento_semanal(){
	    
	    $users = $this->User->find('all', array());
		$i=0;
		
		foreach ($users as &$user):			
			if($user['User']['group_id']!= 1 ){			
				foreach ($user['CentroApoyoEscolare'] as &$cae):
					$asistencia;
					
					for ($mes=1; $mes<=date('m'); $mes++):					
						$cae['Asistencia'][$mes] = ($this->Asistencia->find('first', array('fields'=>'Asistencia.id',
													'conditions'=>array('Asistencia.mes'=>date('Y')."-".$mes, 'Asistencia.centro_apoyo_escolare_id'=>$cae['id']))))?"Si":"No";												 
					endfor;
					
					$estudiantes = $this->Estudiante->find('all',array('conditions'=>array('Estudiante.centro_apoyo_escolare_id'=>$cae['id'])));
					foreach ($estudiantes as &$estudiante):						
					 	//Seguimientos
					    $seguimiento = 0;					    
					    foreach ($estudiante['Seguimiento'] as $seguimiento):
						 	if($seguimiento['user_id']==$user['User']['id'])
						 		$seguimiento++;
				 			                
					    endforeach;
					    $estudiante['Estudiante']['seguimientos'] = ($seguimiento > 0) ? "Si" : "No";
					    $estudiante['Estudiante']['seguimientos_contador'] = $seguimiento;
						
					    //Control de Guias
					    $control_guias = $this->GuiasEstudiante->find('list',array('conditions'=>array('GuiasEstudiante.estudiante_id'=>$estudiante['Estudiante']['id'])));

					    $estudiante['Estudiante']['control_guias'] = count($control_guias);
				    endforeach;
				    $cae['estudiantes'] = $estudiantes; 
		         endforeach; 
		   }			
		endforeach;		
		$this->set(compact('users'));	

	}
	
	function seguimiento_semanal_docente($group = null){
	   
	    $users = $this->User->find('all', array($group == "2"));
	   
		$i=0;
		
		foreach ($users as &$user):	
		
			if($user['User']['group_id']!= 1 ){			
				foreach ($user['CentroApoyoEscolare'] as &$cae):
					$asistencia;
				
					for ($mes=1; $mes<=date('m'); $mes++):					
						$cae['Asistencia'][$mes] = ($this->Asistencia->find('first', array('fields'=>'Asistencia.id',
													'conditions'=>array('Asistencia.mes'=>date('Y')."-".$mes, 'Asistencia.centro_apoyo_escolare_id'=>$cae['id']))))?"Si":"No";												 
					endfor;
					
					$estudiantes = $this->Estudiante->find('all',array('conditions'=>array('Estudiante.centro_apoyo_escolare_id'=>$cae['id'])));
									
					foreach ($estudiantes as &$estudiante):				
					 	//Seguimientos
					    $seguimiento = 0;					    
					    foreach ($estudiante['Seguimiento'] as $seguimiento):
						 	if($seguimiento['user_id']==$user['User']['id'])
						 		$seguimiento++;
				 			                
					    endforeach;
					    $estudiante['Estudiante']['seguimientos'] = ($seguimiento > 0) ? "Si" : "No";
					    $estudiante['Estudiante']['seguimientos_contador'] = $seguimiento;
						
					    //Control de Guias
					    $control_guias = $this->GuiasEstudiante->find('list',array('conditions'=>array('GuiasEstudiante.estudiante_id'=>$estudiante['Estudiante']['id'])));

					    $estudiante['Estudiante']['control_guias'] = count($control_guias);					   
				    endforeach;
				    $cae['estudiantes'] = $estudiantes;				    
		         endforeach; 
		   }
        	   
		endforeach;		
		$this->set(compact('users'));		
	}
	
   function seguimiento_semanal_pedagogico(){	   
     
	    $users = $this->User->find('all', array('conditions'=>array('User.group_id'=>3)));
	   
		$i=0;
		
		foreach ($users as &$user):
		$usuario = array();
		$circulos = array();
			foreach ($user['EquiposOperativo'] as $eo):
				$circulos = $this->CentroApoyoEscolare->find('all',array('conditions'=>array('CentroApoyoEscolare.equipos_operativo_id'=>$eo['id'])));
			endforeach;
				$i=0; $ids = array();
				foreach ($circulos as $ca){
					$user['Cae'][$i]['Cae'] = $ca['CentroApoyoEscolare'];
					$usuario[] = $ca['User'];
					$ids[] = $ca['User']['id'];					
					$i++;	
				}
				
				$usuarios = array();
				
				$sin_repetir = array_unique($ids);				
				
				foreach($sin_repetir as $id){
					foreach ($usuario as $us):
						if($id==$us['id']){
							$usuarios[] = $us;
							break;
						}
					endforeach;
				}

				$planeaciones = array();
				foreach ($usuarios as &$docente):						    
				     $planeaciones = $this->Planeacione->find('all', array('conditions'=>array('Planeacione.user_id'=>$docente['id'])));
				     $docente['planeacion'] = $planeaciones;				 
			    endforeach;
	          			    
			    $user['Docentes']=$usuarios;
	            
			    foreach ($user['Cae'] as &$cae):
			   // die(var_dump($cae));
			    	$estudiantes = $this->Estudiante->find('all', array('fields'=>array('Estudiante.id','Estudiante.nombre_completo'),
			    														 'conditions'=>array('Estudiante.centro_apoyo_escolare_id'=>$cae['Cae']['id'])));
			    	foreach ($estudiantes as &$estudiante):
					 	//Seguimientos
					    $seguimiento_c = 0;					    
					    foreach ($estudiante['Seguimiento'] as $seguimiento):
						 	if($seguimiento['user_id']==$user['User']['id'])
						 		$seguimiento_c++;				 			                
					    endforeach;
					    $estudiante['Estudiante']['seguimientos'] = ($seguimiento_c > 0) ? "Si" : "No";
					    $estudiante['Estudiante']['seguimientos_contador'] = $seguimiento_c;					    
				    endforeach;
				    $cae['Cae']['estudiantes']= $estudiantes;
			    endforeach;		    
	    
		endforeach;		
		$this->set(compact('users','usuario'));		
	}
	
   function seguimiento_semanal_psicosocial(){	   
     
	    $users = $this->User->find('all', array('conditions'=>array('User.group_id'=>4)));
	   
		$i=0;
		
		foreach ($users as &$user):
		$usuario = array();
		$circulos = array();
			foreach ($user['EquiposOperativo'] as $eo):
				$circulos = $this->CentroApoyoEscolare->find('all',array('conditions'=>array('CentroApoyoEscolare.equipos_operativo_id'=>$eo['id'])));
			endforeach;
				$i=0; $ids = array();
				foreach ($circulos as $ca) {					
					$user['Cae'][$i]['Cae'] = $ca['CentroApoyoEscolare'];
					$usuario[] = $ca['User'];
					$ids[] = $ca['User']['id'];					
					$i++;	
				}
				
				$usuarios = array();
				
				$sin_repetir = array_unique($ids);				
				
				foreach($sin_repetir as $id){
					foreach ($usuario as $us):
						if($id==$us['id']){
							$usuarios[] = $us;
							break;
						}
					endforeach;
				}

				$planeaciones = array();
				foreach ($usuarios as &$docente):						    
				     $planeaciones = $this->Planeacione->find('all', array('conditions'=>array('Planeacione.user_id'=>$docente['id'])));
				     $docente['planeacion'] = $planeaciones;				 
			    endforeach;
	          			    
			    $user['Docentes']=$usuarios;
		    
	    
		endforeach;		
		$this->set(compact('users','usuario'));		
	}
	
 	function seguimiento_semanal_coordinador(){	   
     
	    $users = $this->User->find('all', array('conditions'=>array('User.group_id'=>5)));
	   
		$i=0;
		
		foreach ($users as &$user):
		$usuario = array();
		$circulos = array();
			foreach ($user['EquiposOperativo'] as $eo):
				$asesores_pedagogicos = $this->UsersEquiposOperativo->find('list',array('fields'=>array('UsersEquiposOperativo.user_id'),'conditions'=>array('UsersEquiposOperativo.equipos_operativo_id'=>$eo['id'], 
																		'AND'=>array('UsersEquiposOperativo.group_id'=>3))));
				$asesores_psicosociales = $this->UsersEquiposOperativo->find('list',array('fields'=>array('UsersEquiposOperativo.user_id'),'conditions'=>array('UsersEquiposOperativo.equipos_operativo_id'=>$eo['id'], 
																		'AND'=>array('UsersEquiposOperativo.group_id'=>4))));
				$circulos = $this->CentroApoyoEscolare->find('all',array('conditions'=>array('CentroApoyoEscolare.equipos_operativo_id'=>$eo['id'])));
			endforeach;
			
			$ids = array();
			
			foreach ($asesores_pedagogicos as $asesor)
				$ids[]=$asesor;
			
 			foreach ($asesores_psicosociales as $asesor)
				$ids[]=$asesor;
			
 			$sin_repetir = array_unique($ids);
 			$asesores = array();	
						
			foreach ($sin_repetir as $id){
				$asesores[] = $this->User->read(null,$id);
			}
			
			$user['Asesores']=$asesores;	    
		endforeach;
		$this->set(compact('users'));
	}
}
